#!/bin/bash

# JDK 版本和下载 URL
JDK_VERSION="8u442"
JDK_URL="https://builds.openlogic.com/downloadJDK/openlogic-openjdk/8u442-b06/openlogic-openjdk-8u442-b06-linux-x64.tar.gz"
JDK_HOME="/opt/jdk8"

echo "开始安装 JDK ${JDK_VERSION}..."

# 检查是否以 root 权限运行
if [ "$EUID" -ne 0 ]; then 
    echo "请使用 sudo 运行此脚本"
    exit 1
fi

# 创建临时目录
TMP_DIR=$(mktemp -d)
cd "$TMP_DIR"

# 下载 JDK
echo "下载 JDK ${JDK_VERSION}..."
curl -L "$JDK_URL" -o "jdk.tar.gz" \
  --progress-bar \
  --retry 3 \
  --retry-delay 5 \
  --retry-max-time 60

# 检查下载是否成功
if [ $? -ne 0 ]; then
    echo "JDK 下载失败"
    rm -rf "$TMP_DIR"
    exit 1
fi

# 创建安装目录
echo "创建安装目录..."
rm -rf "$JDK_HOME"
mkdir -p "$JDK_HOME"

# 解压 JDK
echo "解压 JDK..."
tar -xzf "jdk.tar.gz" -C "$JDK_HOME" --strip-components=1

# 设置环境变量
JDK_ENV_FILE="/etc/profile.d/jdk8.sh"
echo "配置环境变量..."
cat > "$JDK_ENV_FILE" << EOF
export JAVA_HOME=$JDK_HOME
export PATH=\$JAVA_HOME/bin:\$PATH
EOF

# 设置权限
chmod +x "$JDK_ENV_FILE"

# 使环境变量立即生效
source "$JDK_ENV_FILE"

# 清理临时文件
rm -rf "$TMP_DIR"

# 验证安装
echo "验证 JDK 安装..."
java -version

echo "JDK ${JDK_VERSION} 安装完成！"
echo "环境变量已配置，请选择以下方式之一使其生效："
echo "1. 执行: source /etc/profile"
echo "2. 执行: exec bash"
echo "3. 重新打开终端"